Weekend Offer для продуктовых аналитиков – тестовое задание
Интро
Привет! В октябре мы впервые проводим Weekend Offer в команде продуктовой аналитики Kaspi.kz. Подробнее можно прочитать здесь: https://hr.kaspi.kz/weekendoffer
Чтобы участвовать в Weekend Offer, Вам нужно выполнить тестовое задание. Как выполнить тестовое задание:
- Обязательно пришлите нам на почту weekend_offer@kaspi.kz адрес своей почты на Gmail (и укажите ваши имя и фамилию) – мы дадим на этот адрес доступ к таблицам с данными в Google BigQuery для выполнения ТЗ.
- Выполните все задания, решение оформите в Google Docs или Notion. Настройте доступ на просмотр Вашего файла с решением по ссылке.
- Выполненное тестовое задание отправьте по ссылке: https://hr.kaspi.kz/productanalyst-weekendoffer/form_task
- Мы пришлем Вам сообщение с результатом на указанные в заявке телефон и email.
Блок 1: SQL
Интро
Таблицы с данными
Для выполнения задания мы подготовили 3 таблицы с данными. Таблицы хранятся в Google BigQuery, для написания запросов и обработки данных предлагаем воспользоваться встроенным редактором. BigQuery поддерживает диалект Standard SQL.
- Чтобы начать работу в Google BigQuery, нужно войти в Google Cloud Platform, для этого перейдите по ссылке https://console.cloud.google.com/bigquery?project=kaspi-mobile.
- В левом верхнем меню раскройте проект kaspi-mobile, где можно найти набор данных hiring_pa_task, в котором хранятся все нужные вам таблицы:

- При клике на название таблицы в информационном окне справа можно посмотреть детальные сведения о ней:
- схему данных (названия полей, их тип и режим);
- общие сведения (размер таблицы, число строк, дата последнего изменения и пр.);
- предварительный просмотр данных.
Документация
- Здесь можно ознакомиться с документацией по работе с Google BigQuery.
- Здесь можно ознакомиться с функциями и операторами, используемыми в Standard SQL.
Описание таблиц
У вас есть доступ к трем таблицам с данными (все данные приведены для примера, любые совпадения случайны):
- Таблица `kaspi-mobile.hiring_pa_task.pa_hiring_task` с данными по воронкам в Kaspi Travel (Авиа) c 3 по 14 июля 2022.
-- Пример простого запроса SELECT * FROM `kaspi-mobile.hiring_pa_task.pa_hiring_task`Описание таблицы
Таблица содержит данные о просмотрах экранов пользователями в виде событий (events). Ниже приведено описание событий:
№ Экран/действие Название события Комментарии 1 Просмотр формы поиска билета travel_search_form 2 Просмотр экрана “Ищем билеты, пожалуйста, подождите” travel_search_in_progress 3 Просмотр экрана с результатами поисковой выдачи travel_search_results 4 Просмотр экрана с деталями перелета travel_flight_details 5 Просмотр экрана с подтверждением выбранного тарифа travel_tariff_confirmation 6 Просмотр экрана выбора пассажиров travel_select_passenger 7 Просмотр экрана выбора способа оплаты travel_payment_method 8 Просмотр финального экрана – успешной оплаты 1) travel_card_payment_approved, 2) travel_credit_approved 1) оплата с Kaspi Gold 2) оплата в кредит Каждое событие содержит набор полей (event_properties). Ниже приведено описание полей:
№ Название поля Описание 1 date дата совершения события 2 timestamp дата и время совершения события 3 u_id уникальный идентификатор пользователя 4 event название события, возможные значения мы перечислили выше 5 d_cty_name название города отправления 6 d_ctry_name название страны отправления 7 d_cty_code код города отправления 8 a_ctry_name название страны прибытия 9 a_ctry_code код страны прибытия 10 a_cty_name название города прибытия 11 a_cty_code код города прибытия
- Таблица `kaspi-mobile.hiring_pa_task.pa_hiring_task_experiment_data`, где хранятся данные по эксперименту в Kaspi Travel c 3 по 14 июля 2022:
-- Пример простого запроса SELECT * FROM `kaspi-mobile.hiring_pa_task.pa_hiring_task_experiment_data`Описание таблицы
Таблица содержит данные о пользователях, которые участвовали в тесте в виде событий (events). Каждое событие содержит набор полей (event_properties). Ниже приведено описание полей:
№ Название поля Описание 1 u_id уникальный идентификатор пользователя 2 event название события 3 fork признак ветки (контрольная, тестовая) 4 date дата совершения события
- Таблица `kaspi-mobile.hiring_pa_task.has_avia_transactions`, где хранятся идентификаторы пользователей Kaspi, которые хотя бы раз совершали покупки билетов в Kaspi Travel:
-- Пример простого запроса SELECT * FROM `kaspi-mobile.hiring_pa_task.has_avia_transactions`Поля таблицы
№ Название поля Описание 1 u_id уникальный идентификатор пользователя
Задания
Задание 1
Посчитайте, сколько пользователей хотя бы раз купили билет в кредит за все время.
Ожидаемый результат:
- Текст SQL-запроса, примерный вид:
SELECT column1, column2, column3, ... FROM `table_name` WHERE ...
Задание 2
Посчитайте конверсию из просмотра результатов поисковой выдачи в покупку в выходные дни на международные направления в разрезе по сегментам новых/повторных за все время.

- международный перелет – это перелет, в котором страна отправления и/или страна прилета – не Казахстан;
- мы делим клиентов на два сегмента: новые — еще ни разу не покупали билет, повторные — хотя бы раз покупали билет;
- идентификаторы клиентов, которые хотя бы раз покупали билет, и, соответсвенно, считаются повторными, хранятся в таблице: `kaspi-mobile.hiring_pa_task.has_avia_transactions`;
- при подсчете числа пользователей на втором шаге (экран покупки) нужно учитывать только тех, кто был на первом шаге (экран с результатами);
- значение конверсии нужно округлить до десятых.
Ожидаемый результат
- Текст SQL-запроса, примерный вид:
SELECT column1, column2, column3, ... FROM `table_name` WHERE ...
Задание 3
Посчитайте конверсию из просмотра формы поиска в просмотр результатов поисковой выдачи, по дням c 3 по 14 июля 2022.

- при подсчете числа пользователей на втором шаге (экран с результатами поисковой выдачи) нужно учитывать только тех, кто был на первом шаге (форма поиска);
- оба шага воронки клиент должен пройти в один день;
- значение конверсии нужно округлить до десятых.
Ожидаемый результат
- Текст SQL-запроса, примерный вид:
SELECT column1, column2, column3, ...
FROM `table_name`
WHERE ...Блок 2: Анализ результатов эксперимента
Интро
С 3 по 14 июля 2022 был запущен А/Б-тест в Kaspi Travel, в рамках которого в тестовой ветке добавили подпись о количестве оставшихся билетов по указанной цене:

Клиентская история: Я смотрю билеты на будущую поездку, чтобы проверить наличие билетов, даты рейсов, авиаперевозчика, цены и т.д.
Проблема: Есть пользователи, которые смотрят билеты заранее, например, за 2 недели до путешествия, но откладывают покупку на пару дней. Через пару дней билеты могут закончиться.
Гипотеза: Мы предполагаем, что добавление информации о количестве оставшихся билетов по текущей цене повысит конверсию в покупку на 5%, потому что пользователи будут понимать выгоду от покупки в текущем моменте.
Решение: Добавить в результаты поиска информацию о количестве оставшихся билетов по текущей цене на определенный рейс.
Целевая метрика: Конверсия из просмотра результатов поисковой выдачи в покупку.
Момент попадания в тест: Просмотр экрана с результатами поисковой выдачи.
Базовая конверсия: 9%

Описание теста: В момент попадания в тест отправляется событие ‘viewed_experiment’ с параметром fork (признак ветки теста).
Контрольная ветка:
WHERE event = 'viewed_experiment'
AND fork = 'control'Тестовая ветка:
WHERE event = 'viewed_experiment'
AND fork = 'last-seats'- все шаги воронки клиент должен пройти в один день;
- значение конверсии нужно округлить до десятых.
Задание 1
Напишите SQL-запросы:
- посчитайте и сравните конверсию в покупку в обеих ветках:
- по всем пользователям без разделения на сегменты,
- по сегментам:
- тип перелета (международный, внутренний),
- по опыту прошлых покупок у пользователей (новые, повторные).
- посчитайте дополнительные метрики, которые считаете важными для анализа результатов.
💡Обратите внимание:Идентификаторы клиентов, которые хотя бы раз покупали билет, и, соответсвенно, считаются повторными, хранятся в таблице: `kaspi-mobile.hiring_pa_task.has_avia_transactions`.
Ожидаемый результат
- Тексты всех SQL-запросов
Задание 2
Вам нужно принять решение о раскатке данного функционала по итогам А/Б-теста. Как вы считаете, стоит ли нам его раскатить?
Предлагаем при выполнении принять во внимание следующие пункты:
- Увеличилась ли конверсия в тестовой ветке? Если да, то насколько?
- Можем ли мы принять решение о раскатке на полученных данных? Хватает ли нам данных, чтобы заметить статистически значимые различия?
- Отличаются ли результаты в зависимости от типа перелета?
- Отличаются ли результаты в зависимости от опыта прошлых покупок?
- Есть ли дополнительные метрики, которые мы можем замерить и которые нам могут быть интересны в контексте анализа итогов?
Ожидаемый результат
- Ответ по пунктам 1-5 в произвольной форме
Блок 3: Продуктовые навыки
Интро
В бэклоге продакт-менеджера авиабилетов в Kaspi Travel есть идеи по увеличению конверсии новых пользователей в покупку:
- группировка прямых рейсов на странице результатов (ниже – пример реализации в Aviasales),

- подписка на цены билетов на дату (ниже – пример реализации в Aviasales),


- метки “Самый дешевый”, “Самый быстрый” на билетах в выдаче билетов (ниже – пример реализации в Aviasales).

Задания
Задание 1
Помогите продакт-менеджеру оценить потенциал каждой из идей и приоритизировать бэклог. Для этого подумайте и опишите:
- Какая клиентская проблема или потребность может скрываться за каждой идеей?
- Как бы вы оценили, сколько пользователей может сталкиваться с этой проблемой?
- Как бы вы валидировали эту проблему / потребность (проверили и доказали, что она действительно есть у пользователей)?
- На какие показатели может повлиять предлагаемое решение (фича)?
- Как бы вы оценили, какое конкретно влияние на эти показатели она окажет?
- Какой принцип вы бы предложили использовать, чтобы сравнить потенциал идей между собой и приоритизировать бэклог?
- Можете исходить из того, что вам доступны любые данные о поведении пользователей в Travel.
Задание 2
Выберите из бэклога идею, получившую наибольший приоритет при выполнении предыдущего задания. Предположим, вы с продакт-менеджером решили запустить A/B-тест для проверки влияния предлагаемой фичи на показатели продукта. Опишите:
- Как бы вы подготовили А/Б-тест?
- Как бы анализировали результаты теста и какие решения принимали в зависимости от результатов?


